package lib.bone.system.dao;

import lib.bone.system.domain.entity.SysUser;
import lib.bone.system.domain.vo.UserBaseVO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;
import java.util.Optional;

public interface SysUserDAO extends JpaRepository<SysUser,Long> {

    /**
     * 根据登录名查询
     */
    Optional<SysUser> findByUserName(String userName);
    /**
     * 根据ID删除
     */
    void deleteById(Long userId);
    /**
     * 根据ID列表查询
     */
    List<SysUser> findByIdIn(List<Long> userIds);

    List<SysUser> findByUserNameIn(List<String> userNames);

    /**
     * 根据部门ID查询
     * @param deptId
     * @retuSrn
     */
    List<SysUser> findByDeptId(Long deptId);

    /**
     * 部分字段查询
     */
    @Query("select new lib.bone.system.domain.vo.UserBaseVO(t.id, t.avatar, t.userName, t.nickName, t.deptId, t.cardId,t.postId) from SysUser t")
    List<UserBaseVO> getAllUserBase();



}
